<HTML><HEAD><TITLE>?Svar `::  +Domain</TITLE>
</HEAD><BODY>[ <A HREF="index.html">library(conjunto)</A> | <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]
<H1>?Svar `::  +Domain</H1>
Terms in Svar have the set domain Domain.


<DL>
<DT><EM>?SVar</EM></DT>
<DD>A set variable or a list of set variables.
</DD>
<DT><EM>+Domain</EM></DT>
<DD>Lattice specified by its upper and lower bound Glb..Lub such                that Glb is a subset of Lub.
</DD>
</DL>
<H2>Description</H2>
   The main purpose of this predicate is to create set domain variables.
   Domain has to be a closed set interval specified as Glb..Lub.  If SVar
   is already a set domain variable, its set domain will be updated
   according to the new domain; if it is instanciated, the predicate checks
   is the set value lies in the domain.  If the upper bound equals the
   lower bound the set variable describes a ground set.  Otherwise, if SVar
   is a free variable, it is converted to a set domain variable.  If SVar
   is a list, this will be performed for all its elements.  If Domain is
   free, it fails.

<P>

<H3>Fail Conditions</H3>
   Fails if Domain is free, or if SVar cannot have the domain Domain.


<H3>Resatisfiable</H3>
   No.
<H2>Examples</H2>
<PRE>
[eclipse 3]: S `:: {}..{a,{2,3},c}.

S = S{{} .. {a, {2,3}, c}}
yes.



</PRE>
<H2>See Also</H2>
<A HREF="../../lib/conjunto/glb-2.html">glb / 2</A>, <A HREF="../../lib/conjunto/lub-2.html">lub / 2</A>, <A HREF="../../lib/conjunto/set_range-3.html">set_range / 3</A>, <A HREF="../../lib/conjunto/set-1.html">set / 1</A>
</BODY></HTML>
